/*
 * This header was generated from the Linux kernel headers by update_headers.py,
 * to provide necessary information from kernel to userspace, such as constants,
 * structures, and macros, and thus, contains no copyrightable information.
 */
#ifndef _PPP_IOCTL_H
#define _PPP_IOCTL_H
#include <linux/types.h>
#include <linux/compiler.h>
#include <linux/ppp_defs.h>
#define SC_COMP_PROT	0x00000001
#define SC_COMP_AC	0x00000002
#define	SC_COMP_TCP	0x00000004
#define SC_NO_TCP_CCID	0x00000008
#define SC_REJ_COMP_AC	0x00000010
#define SC_REJ_COMP_TCP	0x00000020
#define SC_CCP_OPEN	0x00000040
#define SC_CCP_UP	0x00000080
#define SC_ENABLE_IP	0x00000100
#define SC_LOOP_TRAFFIC	0x00000200
#define SC_MULTILINK	0x00000400
#define SC_MP_SHORTSEQ	0x00000800
#define SC_COMP_RUN	0x00001000
#define SC_DECOMP_RUN	0x00002000
#define SC_MP_XSHORTSEQ	0x00004000
#define SC_DEBUG	0x00010000
#define SC_LOG_INPKT	0x00020000
#define SC_LOG_OUTPKT	0x00040000
#define SC_LOG_RAWIN	0x00080000
#define SC_LOG_FLUSH	0x00100000
#define	SC_SYNC		0x00200000
#define	SC_MUST_COMP    0x00400000
#define	SC_MASK		0x0f600fff
#define SC_XMIT_BUSY	0x10000000
#define SC_RCV_ODDP	0x08000000
#define SC_RCV_EVNP	0x04000000
#define SC_RCV_B7_1	0x02000000
#define SC_RCV_B7_0	0x01000000
#define SC_DC_FERROR	0x00800000
#define SC_DC_ERROR	0x00400000
struct npioctl {
	int		protocol;
	enum NPmode	mode;
};
struct ppp_option_data {
	__u8	__user *ptr;
	__u32	length;
	int	transmit;
};
struct pppol2tp_ioc_stats {
	__u16		tunnel_id;
	__u16		session_id;
	__u32		using_ipsec:1;
	__aligned_u64	tx_packets;
	__aligned_u64	tx_bytes;
	__aligned_u64	tx_errors;
	__aligned_u64	rx_packets;
	__aligned_u64	rx_bytes;
	__aligned_u64	rx_seq_discards;
	__aligned_u64	rx_oos_packets;
	__aligned_u64	rx_errors;
};
#define	PPPIOCGFLAGS	_IOR('t', 90, int)
#define	PPPIOCSFLAGS	_IOW('t', 89, int)
#define	PPPIOCGASYNCMAP	_IOR('t', 88, int)
#define	PPPIOCSASYNCMAP	_IOW('t', 87, int)
#define	PPPIOCGUNIT	_IOR('t', 86, int)
#define	PPPIOCGRASYNCMAP _IOR('t', 85, int)
#define	PPPIOCSRASYNCMAP _IOW('t', 84, int)
#define	PPPIOCGMRU	_IOR('t', 83, int)
#define	PPPIOCSMRU	_IOW('t', 82, int)
#define	PPPIOCSMAXCID	_IOW('t', 81, int)
#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm)
#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm)
#define PPPIOCXFERUNIT	_IO('t', 78)
#define PPPIOCSCOMPRESS	_IOW('t', 77, struct ppp_option_data)
#define PPPIOCGNPMODE	_IOWR('t', 76, struct npioctl)
#define PPPIOCSNPMODE	_IOW('t', 75, struct npioctl)
#define PPPIOCSPASS	_IOW('t', 71, struct sock_fprog)
#define PPPIOCSACTIVE	_IOW('t', 70, struct sock_fprog)
#define PPPIOCGDEBUG	_IOR('t', 65, int)
#define PPPIOCSDEBUG	_IOW('t', 64, int)
#define PPPIOCGIDLE	_IOR('t', 63, struct ppp_idle)
#define PPPIOCNEWUNIT	_IOWR('t', 62, int)
#define PPPIOCATTACH	_IOW('t', 61, int)
#define PPPIOCDETACH	_IOW('t', 60, int)
#define PPPIOCSMRRU	_IOW('t', 59, int)
#define PPPIOCCONNECT	_IOW('t', 58, int)
#define PPPIOCDISCONN	_IO('t', 57)
#define PPPIOCATTCHAN	_IOW('t', 56, int)
#define PPPIOCGCHAN	_IOR('t', 55, int)
#define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats)
#define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
#define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)
#define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
#endif
